package com.huang.template;

/**
 * 抽象类,(定义模板方法和基本方法)
 */
public abstract class AbstractClass {

    //模板方法定义
    public final void cookProcess() {
        //第一步：倒油
        pourOil();
        //第二步：倒蔬菜
        pourVegetable();
        //第三步：倒调味料
        pourSauce();
        //第四步：翻炒
        fry();
    }

    //基本方法，都是一样的步骤
    public void pourOil() {
        System.out.println("倒油");
    }

    //模板方法,倒蔬菜，倒的蔬菜可能不一样，定义模板方法
    public abstract void pourVegetable();

    //模板方法，倒调料，倒调料可能不一样，定义模板方法
    public abstract void pourSauce();

    //基本方法，翻炒
    public void fry() {
        System.out.println("翻炒");
    }

}
